The present invention relates to high speed variable data printing systems and, more particularly, to assuring the supply of sufficient data to the print engine of a high speed printing system so the engine can operate continuously and efficiently.
Ink jet printing systems are known in which a print head defines one or more rows of orifices which receive an electrically conductive recording fluid, such as for instance a water based ink, from a pressurized fluid supply manifold and eject the fluid in rows of parallel streams. Printers using such print heads and print engines accomplish graphic reproduction by selectively charging and deflecting the drops in each of the streams and depositing at least some of the drops on a print receiving medium, while others of the drops strike a drop catcher device.
The problem of supplying data at a rate sufficiently matched to the print engine is well-known in the industry. The processing speed that defines the sustained output speed of the controller is generally limited by the content of the data stream. For example, IPDS (Intelligent Printer Data Stream) and Postscript are both common languages used to drive printers in a data center environment and publishing environments. The time to rip (Raster Image Process) a page for both languages is highly data dependant and it is possible to define pages that take a substantial amount of time to prepare for output. Another limitation that affects the supply of data to the print engine may be the communication bandwidth, or the ability of the host to send data fast enough.
There have been many attempts to overcome this problem. One method is commonly used with cut-sheet printers. For example, some printers can stop feeding sheets while the current page is being ripped. Such a printing system then waits for the image to be completely ripped before moving forward. These printers simply withhold feeding a sheet of paper to the printing mechanism until the data for that page is ready for output. This holding back of a page is a common practice and can been seen in many office printers that render images using the Postscript(trademark) page description language. Postscript is a very powerful page rendering language and the time to convert a page from its description into a bitmap is unpredictable.
The problem achieves new dimensions with continuous form printers, where it is difficult to withhold feeding of the paper. In these printers, such as the IBM Infoprint 4000 or the Oce Pagestream, the paper may be on a roll, i.e., continuously fed. The paper for an image may already be in the print engine when the print engine runs out of data. In this case, the printer abruptly stops the paper motion and waits for the data. This is known as xe2x80x9cclutching.xe2x80x9d In some cases, the printer needs to reverse-feed to reposition the paper for proper image placement. Clutching is undesirable for several reasons. It places undo wear and tear on the printer mechanism. Furthermore, clutching slows down the overall throughput. Also, clutching may affect image quality in printers that have multiple print stations such as printers that image black and colors in series. Therefore, it is not practical to stop printing in the middle of one of the pages, due to the inevitable print defects that will occur.
Another approach to dealing with this situation is described in U.S. Pat. No. 5,729,665, issued to Gauthier. The ""0 665 patent teaches a method of separating the fixed from the variable portions of each page such that the printer needs only replace the variable elements. This allows the RIP to convert fixed data into bitmaps only once, and fill in the variable data as needed. The ""665 patent is one of many methods used to minimize the processing of variable information to speed up the image development process. While this approach reduces the number of times a printing system will be starved for data, it does not eliminate the problem. The major drawback of this approach is obvious. If all or a majority of the data for every page is variable, the concept of repeating the fixed data and only processing the variable data falls apart.
Ultra high speed printers such as the Scitex Digital Printing 3600, which prints at speeds over 4000 pages per minute, present yet another challenge. Ultra high speed printers such as the Scitex Digital Printing 3600 printer feed paper from a large roll, typically weighing hundreds of pounds. It is impractical to xe2x80x9cclutchxe2x80x9d the paper to stop and start it in a short period of time. Even if it were possible to do so, it would bring the average print time down so far that the financial benefits of using such an ultra high speed printer would be minimized. Restricting the content of pages is also unacceptable since even a single page that is not ready for printing could cause the printer to have to immediately halt.
A method of dealing with this problem that is currently employed is to restrict the data input such that the data rendering process can guarantee that pages can be converted into bitmaps at the full rated speed of the printing system. The Scitex Digital Printing IJPDS (Ink-Jet Printer Data Stream) language requires pre-processing of images during data preparation where all time consuming ripping is done off-line. The RIP (raster image processor) in the printer pre-loads all of the complicated bitmaps and fonts at the start of a print job and simply assembles them into the proper locations during the real-time print cycle. The pre-ripped images may be used once or multiple times without restriction. The Scitex RIPs using IJPDS are scalar and powerful enough to guarantee real time printing without stopping in all practical cases. The disadvantage of this approach is a limitation on the type of imaging that can be done at the last minute on the printer.
It is seen then that it would be desirable to be able to optimize printer efficiency by matching the supply of data to the print engine so that the print engine can be prevented from stopping unnecessarily or xe2x80x9cclutchingxe2x80x9d. It would further be desirable to provide a RIP in an existing ultra high speed printer other than an IJPDS RIP. In order to enter certain markets, it is required to utilize a RIP that interprets IPDS (Intelligent Printer Data Stream), which is quite different from IJPDS language.
The present invention proposes a system that overcomes one of the most difficult issues facing high speed printing systems, that is, assuring the supply of sufficient data to the print engine so the engine can continue to run efficiently without stopping. The present invention applies the fact that for any given document it is reasonable to assume that there may be very complex pages and very simple pages. The input bandwidth of the host interface is capable of providing data at the full rated speed, but the host computer may from time to time not be able to put enough data into the pipeline to keep the printer running. Recognizing that in some cases, the data supply exceeds the capacity of the print engine and in other cases the capacity of the print engine exceeds the data supply, the present invention optimizes the efficiency of the print engine. This capacity mismatch may be due to ripping complexity (the process of taking the page description language and converting it into a bitmap), or simply the supply bandwidth between the source, typically a host computer, and the RIP.
In accordance with one aspect of the present invention, a printing system supplies sufficient data to the print engine so that the print engine can run continuously and efficiently. The printing system has at least one marking engine capable of printing an image on a media as a transport moves the media past the marking engine. Buffers or sets of buffers hold raster image processed pages, and interface logic transfers the buffered pages to the marking engine to transfer the image to the media. Buffer management logic controls the buffers so that as the printing system accumulates slack time left over from raster image processing non-complex pages, the slack time is allocated to complex pages to optimize average raster image processing time with speed of the print engine.